package com.ly.gen.entity;

import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * 代码生成-字段
 *
 * @author luoyun
 * @Date: 2025-06-12
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("gen_field")
@Schema(description = "代码生成-字段")
public class GenField implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @TableId(type = IdType.ASSIGN_ID)
    @ExcelProperty("主键ID")
    @Schema(description = "主键ID")
    private java.lang.String id;

    /**
     * 数据库表
     */
    @ExcelProperty("数据库表")
    @Schema(description = "数据库表")
    private java.lang.String tableName;

    /**
     * 数据库列定义
     */
    @ExcelProperty("数据库列定义")
    @Schema(description = "数据库列定义")
    private java.lang.String columnType;

    /**
     * 数据库列定义-简单模式
     */
    @ExcelProperty("数据库列定义-简单模式")
    @Schema(description = "数据库列定义-简单模式")
    private java.lang.String columnSimpleType;

    /**
     * 数据库列定义-java模式
     */
    @ExcelProperty("数据库列定义-java模式")
    @Schema(description = "数据库列定义-java模式")
    private java.lang.String columnJavaType;

    /**
     * 表ID
     */
    @ExcelProperty("表ID")
    @Schema(description = "表ID")
    private java.lang.String cgformHeadId;
    /**
     * 字段名字
     */
    @ExcelProperty("字段名字")
    @Schema(description = "字段名字")
    private java.lang.String dbFieldName;
    /**
     * 字段备注
     */
    @ExcelProperty("字段备注")
    @Schema(description = "字段备注")
    private java.lang.String dbFieldTxt;
    /**
     * 原字段名
     */
    @ExcelProperty("原字段名")
    @Schema(description = "原字段名")
    private java.lang.String dbFieldNameOld;
    /**
     * 是否主键 0否 1是
     */
    @ExcelProperty("是否主键 0否 1是")
    @Schema(description = "是否主键 0否 1是")
    private java.lang.Integer dbIsKey;
    /**
     * 是否允许为空0否 1是
     */
    @ExcelProperty("是否允许为空0否 1是")
    @Schema(description = "是否允许为空0否 1是")
    private java.lang.Integer dbIsNull;
    /**
     * 是否需要同步数据库字段， 1是0否
     */
    @ExcelProperty("是否需要同步数据库字段， 1是0否")
    @Schema(description = "是否需要同步数据库字段， 1是0否")
    private java.lang.Integer dbIsPersist;
    /**
     * 数据库字段类型
     */
    @ExcelProperty("数据库字段类型")
    @Schema(description = "数据库字段类型")
    private java.lang.String dbType;
    /**
     * 数据库字段长度
     */
    @ExcelProperty("数据库字段长度")
    @Schema(description = "数据库字段长度")
    private java.lang.Integer dbLength;
    /**
     * 小数点
     */
    @ExcelProperty("小数点")
    @Schema(description = "小数点")
    private java.lang.Integer dbPointLength;
    /**
     * 表字段默认值
     */
    @ExcelProperty("表字段默认值")
    @Schema(description = "表字段默认值")
    private java.lang.String dbDefaultVal;
    /**
     * 字典code
     */
    @ExcelProperty("字典code")
    @Schema(description = "字典code")
    private java.lang.String dictField;
    /**
     * 字典表
     */
    @ExcelProperty("字典表")
    @Schema(description = "字典表")
    private java.lang.String dictTable;
    /**
     * 字典Text
     */
    @ExcelProperty("字典Text")
    @Schema(description = "字典Text")
    private java.lang.String dictText;
    /**
     * 表单控件类型
     */
    @ExcelProperty("表单控件类型")
    @Schema(description = "表单控件类型")
    private java.lang.String fieldShowType;
    /**
     * 跳转URL
     */
    @ExcelProperty("跳转URL")
    @Schema(description = "跳转URL")
    private java.lang.String fieldHref;
    /**
     * 表单控件长度
     */
    @ExcelProperty("表单控件长度")
    @Schema(description = "表单控件长度")
    private java.lang.Integer fieldLength;
    /**
     * 表单字段校验规则
     */
    @ExcelProperty("表单字段校验规则")
    @Schema(description = "表单字段校验规则")
    private java.lang.String fieldValidType;
    /**
     * 字段是否必填
     */
    @ExcelProperty("字段是否必填")
    @Schema(description = "字段是否必填")
    private java.lang.String fieldMustInput;
    /**
     * 扩展参数JSON
     */
    @ExcelProperty("扩展参数JSON")
    @Schema(description = "扩展参数JSON")
    private java.lang.String fieldExtendJson;
    /**
     * 控件默认值，不同的表达式展示不同的结果。
     * 1. 纯字符串直接赋给默认值；
     * 2. #{普通变量}；
     * 3. {{ 动态JS表达式 }}；
     * 4. ${填值规则编码}；
     * 填值规则表达式只允许存在一个，且不能和其他规则混用。
     */
    @ExcelProperty("控件默认值")
    private java.lang.String fieldDefaultValue;
    /**
     * 是否查询条件0否 1是
     */
    @ExcelProperty("是否查询条件0否 1是")
    @Schema(description = "是否查询条件0否 1是")
    private java.lang.Integer isQuery;
    /**
     * 表单是否显示0否 1是
     */
    @ExcelProperty("表单是否显示0否 1是")
    @Schema(description = "表单是否显示0否 1是")
    private java.lang.Integer isShowForm;
    /**
     * 列表是否显示0否 1是
     */
    @ExcelProperty("列表是否显示0否 1是")
    @Schema(description = "列表是否显示0否 1是")
    private java.lang.Integer isShowList;
    /**
     * 是否是只读（1是 0否）
     */
    @ExcelProperty("是否是只读（1是 0否）")
    @Schema(description = "是否是只读（1是 0否）")
    private java.lang.Integer isReadOnly;
    /**
     * 查询模式
     */
    @ExcelProperty("查询模式")
    @Schema(description = "查询模式")
    private java.lang.String queryMode;
    /**
     * 外键主表名
     */
    @ExcelProperty("外键主表名")
    @Schema(description = "外键主表名")
    private java.lang.String mainTable;
    /**
     * 外键主键字段
     */
    @ExcelProperty("外键主键字段")
    @Schema(description = "外键主键字段")
    private java.lang.String mainField;
    /**
     * 排序
     */
    @ExcelProperty("排序")
    @Schema(description = "排序")
    private java.lang.Integer orderNum;
    /**
     * 自定义值转换器
     */
    @ExcelProperty("自定义值转换器")
    @Schema(description = "自定义值转换器")
    private java.lang.String converter;
    /**
     * 查询默认值
     */
    @ExcelProperty("查询默认值")
    @Schema(description = "查询默认值")
    private java.lang.String queryDefVal;
    /**
     * 查询配置字典text
     */
    @ExcelProperty("查询配置字典text")
    @Schema(description = "查询配置字典text")
    private java.lang.String queryDictText;
    /**
     * 查询配置字典code
     */
    @ExcelProperty("查询配置字典code")
    @Schema(description = "查询配置字典code")
    private java.lang.String queryDictField;
    /**
     * 查询配置字典table
     */
    @ExcelProperty("查询配置字典table")
    @Schema(description = "查询配置字典table")
    private java.lang.String queryDictTable;
    /**
     * 查询显示控件
     */
    @ExcelProperty("查询显示控件")
    @Schema(description = "查询显示控件")
    private java.lang.String queryShowType;
    /**
     * 是否启用查询配置1是0否
     */
    @ExcelProperty("是否启用查询配置1是0否")
    @Schema(description = "是否启用查询配置1是0否")
    private java.lang.String queryConfigFlag;
    /**
     * 查询字段校验类型
     */
    @ExcelProperty("查询字段校验类型")
    @Schema(description = "查询字段校验类型")
    private java.lang.String queryValidType;
    /**
     * 查询字段是否必填1是0否
     */
    @ExcelProperty("查询字段是否必填1是0否")
    @Schema(description = "查询字段是否必填1是0否")
    private java.lang.String queryMustInput;
    /**
     * 是否支持排序1是0否
     */
    @ExcelProperty("是否支持排序1是0否")
    @Schema(description = "是否支持排序1是0否")
    private java.lang.String sortFlag;

    /**
     * 创建人
     */
    @ExcelProperty("创建人")
    @Schema(description = "创建人")
    private java.lang.String createBy;

    /**
     * 创建时间
     */
    @ExcelProperty("创建时间")
    @Schema(description = "创建时间")
    private java.util.Date createTime;

    /**
     * 修改人
     */
    @ExcelProperty("修改人")
    @Schema(description = "修改人")
    private java.lang.String updateBy;
    /**
     * 修改时间
     */
    @ExcelProperty("修改时间")
    @Schema(description = "修改时间")
    private java.util.Date updateTime;
}
